var express = require('express');
var router = express.Router();
const path = require('path');
// 导入moment
const moment = require('moment');
const AccountModel = require('../../models/AccountModel');

// 记账本列表
router.get('/account', function (req, res, next) {
  // 获取所有的账单信息
  AccountModel.find().sort({ time: -1 }).exec().then((result) => {
    // 成功响应
    res.json({
      // 相应编号
      code: '0000',
      // 响应的信息
      msg: '读取成功',
      // 响应的数据
      data: result
    });
  }).catch(() => {
    res.json({
      code: '1001',
      msg: '读取失败',
      data: null
    });
  })

});

// 新增记录
router.post('/account', function (req, res, next) {
  // 获取请求体数据
  //插入数据库
  AccountModel.create({ ...req.body, time: moment(req.body.time).toDate() })
    .then((result) => {
      // 成功响应
      res.json({
        // 相应编号
        code: '0000',
        // 响应的信息
        msg: '创建成功',
        // 响应的数据
        data: result
      });
    }).catch(err => {
      console.log(err);
      res.json({
        code: '1001',
        msg: '创建失败',
        data: null
      });
    })
});

// 删除记录
router.delete('/account/:id', (req, res) => {
  // 获取params的id参数
  let { id } = req.params;
  AccountModel.deleteOne({ _id: id }).then(() => {
    // 成功响应
    res.json({
      // 相应编号
      code: '0000',
      // 响应的信息
      msg: '删除成功',
      // 响应的数据
      data: null
    });
  }).catch((err) => {
    console.log(err);
    res.json({
      code: '1001',
      msg: '删除失败',
      data: null
    });
  })
})


// 获取单个账单信息
router.get('/account/:id', (req, res) => {
  // 获取params的id参数
  let { id } = req.params;
  AccountModel.findById(id).then((data) => {
    // 成功响应
    res.json({
      // 相应编号
      code: '0000',
      // 响应的信息
      msg: '查询成功',
      // 响应的数据
      data
    });
  }).catch((err) => {
    console.log(err);
    res.json({
      code: '1001',
      msg: '查询失败',
      data: null
    });
  })
})


// 获取单个账单信息
router.patch('/account/:id', (req, res) => {
  // 获取params的id参数
  let { id } = req.params;
  AccountModel.updateOne({ _id: id }, req.body).then(() => {
    AccountModel.findById(id).then(data => {
      // 成功响应
      res.json({
        // 相应编号
        code: '0000',
        // 响应的信息
        msg: '更新成功',
        // 响应的数据
        data
      });
    })
  }).catch((err) => {
    console.log(err);
    res.json({
      code: '1001',
      msg: '更新失败',
      data: null
    });
  })
})

module.exports = router;
